From: Michaƫl Cadilhac Date: Mon, 10 Sep 2007 09:42:13 +0000 (+0000) Subject: (Finteractive_form): If the interactive specification starts with a `(', X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1^2~5^2~27119 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=8a6d230a995697e11813f59b8f3b72c6a6cf029c;p=emacs.git (Finteractive_form): If the interactive specification starts with a `(', use it as a Lisp form. --- diff --git a/src/ChangeLog b/src/ChangeLog index 19854387b6a..cb8d66e14b4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -5,6 +5,9 @@ * eval.c (Fcommandp): Change `->prompt' to `->intspec'. + * data.c (Finteractive_form): If the interactive specification starts + with a `(', use it as a Lisp form. + * callint.c (Fcall_interactively): Comment fixes. 2007-09-10 Stefan Monnier diff --git a/src/data.c b/src/data.c index 1f82f929281..dfc0c35705a 100644 --- a/src/data.c +++ b/src/data.c @@ -770,8 +770,11 @@ Value, if non-nil, is a list \(interactive SPEC). */) if (SUBRP (fun)) { - if (XSUBR (fun)->prompt) - return list2 (Qinteractive, build_string (XSUBR (fun)->prompt)); + char *spec = XSUBR (fun)->intspec; + if (spec) + return list2 (Qinteractive, + (*spec != '(') ? build_string (spec) : + Fcar (Fread_from_string (build_string (spec), Qnil, Qnil))); } else if (COMPILEDP (fun)) {